package common.util;

import common.util.DateUtils;  // 工具类导入（目前未使用，可删除）
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * Map工具类：将对象转为Map结构
 */
public class MapUtil {

    /**
     * 将任意对象转换为Map
     * @param obj 需要转换的对象
     * @return Map<String, Object> 形式的对象属性和值
     */
    public static Map<String, Object> objectToMap(Object obj) {

        final Logger logger = LoggerFactory.getLogger(MapUtil.class);
        Map<String, Object> map = new HashMap<>();

        try {
            // 获取对象的Class
            Class<?> clazz = obj.getClass();
            // 获取对象的所有字段（不包括父类字段）
            Field[] fields = clazz.getDeclaredFields();

            for (Field field : fields) {
                field.setAccessible(true); // 允许访问私有字段
                Object value = field.get(obj); // 获取字段值
                map.put(field.getName(), value); // 添加到map
            }
        } catch (IllegalAccessException e) {
            logger.error("MapUtil出错: {}", e.getMessage());
        }

        return map;
    }
}
